console.log('this is Service Worker');
/**
 * 下面的示例展示了服务线程内部操作
 */
const example4 = () => {
  // caching.js
  self.addEventListener('install', event => {
    // 打开一个资源的缓存
    caches.open('shell-v1').then(cache => {
      // 开始获取处理
      return cache.addAll([
        '/app.html',
        '/assets/v1/base.css',
        '/assets/v1/app.js',
        '/assets/v1.logo.png',
        '/assets/v1.intro_video.webm'
      ]);
    })
  })

  self.addEventListener('fetch', event => {
    // 服务线程中，直到成功初始化并激活才有“fetch"事件
    // 所有缓存操作都是异步的，包括url匹配，所以使用 Promise
    event.respondWith(
      caches.match(e.request).then(response => {
        return response || fetch(e.request);
      }).catch(() => {
        return caches.match('/fallback.html');
      })
    )
  })
}